package com.cachopoid.db;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;

import com.cachopoid.utils.ConstantesDB;
import com.cachopoid.vo.FotoVO;

public class FotoDAO extends DBAdapter {

	public FotoDAO(Context context) {
		super(context);
	}

	/**
	 *  Insertar en tabla CACHOPOS
	 * @param Object VO
	 * @return correcto devuelve true si lo ha borrado correctamente
	 */
	public boolean insert(Object object) {
		
		ContentValues initialValues = createContentValues((FotoVO) object);
		boolean correcto = false;
		try{
			
			database.insert(ConstantesDB.TABLE_FOTOS, null, initialValues);
			correcto=true;
		}
		catch(SQLException ex){
			ex.getMessage();
		}
		return correcto;
	}

	/**
	 * Actualiza la tabla FOTOS
	 * @param id
	 * @param object
	 * @return correcto devuelve true si lo ha borrado correctamente
	 */
	public boolean update(int id, Object object) {
		
		boolean correcto = false;
		ContentValues updateValues = createContentValues((FotoVO) object);
		try{
			database.update(ConstantesDB.TABLE_FOTOS, updateValues, ConstantesDB.IDFOTO + "="
					+ id, null);
			
			correcto=true;
		}
		catch(SQLException ex){
			ex.getMessage();
		}
		return correcto;
	}

	/**
	 * Elimina el registro de la tabla FOTOS
	 * @param rowId
	 * @return correcto devuelve true si lo ha borrado correctamente
	 */
	public boolean delete(int id) {
		
		boolean correcto = false;
		try{
			database.delete(ConstantesDB.TABLE_FOTOS, ConstantesDB.IDFOTO + "=" + id, null);
			correcto=true;
		}
		catch(SQLException ex){
			ex.getMessage();
		}
		
		return correcto;
	}

	/**
	 * Devuelve una lista de la tabla FOTOS
	 * @param id
	 * @return correcto devuelve true si lo ha borrado correctamente
	 */
	public List list(int id) {
		
		ArrayList<FotoVO> comentarios = new ArrayList<FotoVO>();
		try{
			//database.delete(ConstantesDB.TABLE_FOTOS, ConstantesDB.IDFOTO + "=" + id, null);
		}
		catch(SQLException ex){
			ex.getMessage();
		}
		
		return comentarios;
	}
	
	
	private ContentValues createContentValues(FotoVO foto) {
		ContentValues values = new ContentValues();
		values.put(ConstantesDB.IDFOTO, foto.getIdFoto());
		values.put(ConstantesDB.IDCACHOPO, foto.getIdCachopo());
		values.put(ConstantesDB.IDESTABLECIMIENTO, foto.getIdCachopo());
		values.put(ConstantesDB.IDFOTO, foto.getIdEstablecimiento());
		
		return values;
	}

	@Override
	public ArrayList listAll(String orderBy) {
		// TODO Auto-generated method stub
		return null;
	}
	
	
	/**
	 * Devuelve las fotos que pertenecen a un cachopo indicado por ID
	 * @param idEstablecimiento
	 * @return
	 */
	
	public ArrayList<FotoVO> getFotosXEstablecimiento(Integer idEstablecimiento){
		open();
		ArrayList<FotoVO> fotos = new ArrayList<FotoVO>();
		FotoVO fotoVO = new FotoVO();
		try{
			Cursor c = database.rawQuery("SELECT _id,idCachopo,foto FROM fotos where idEstablecimiento ="+idEstablecimiento, null);
			//Nos aseguramos de que existe al menos un registro
			if (c.moveToFirst()) {
			     do {
			    	 fotoVO = new FotoVO();
			    	 fotoVO.setIdFoto(c.getInt(0));
			    	 fotoVO.setIdCachopo(c.getInt(1));
			    	 fotoVO.setFoto(c.getString(2));
			    	 fotos.add(fotoVO);
			     } while(c.moveToNext());
			}
			c.close();
		}
		catch(SQLException ex){
			
			ex.getMessage();
		}
		
		return fotos;
	}

	
}
